post /cloudextensions/{cloudExtensionId}/operations/fullMigrateVm
Fully Migrate VM To Cloud (fullMigrateVmToCloud)
Velostrata enables you to rapidly migrate any VM to the cloud and test any application in minutes, without having to perform a full data migration. Once you have verified that the application works in the cloud, you can then migrate the VM storage as well. This reduces the risk of migration. The Migrate wizard in vSphere does the following steps - Move the VM to the cloud. Migrate the storage to the cloud. Prepare to detach the VM. This takes the data from the AWS S3 object/ Azure Storage/ Google Cloud Storage and writes it to AWS EBS/Azure drives. Once the Migrate wizard is completed after several hours, the VM is Ready to Detach.
Path parameters
cloudExtensionId (required)
Path Parameter — Cloud Extension ID
Consumes
This API call consumes the following media types via the Content-Type request header:
- application/json
Request body
moveSpec MoveToCloudRequest (required)
Body Parameter — Move to cloud request
MoveToCloudRequest
_type |
String Whether to run the VM in AWS or Azure. Enum: MoveToAwsRequest MoveToAzureRequest MoveToGCPRequest |
Note: Use the relevant structure depending on whether you are moving a VM to AWS, Azure, or GCP.
MoveToAwsRequest
sourceVmId |
String VM ID |
||
instanceType |
String VM instance type |
||
subnetId (optional) |
String Subnet ID. If none is specified, the default edge node subnet is used. |
||
staticAddress (optional) |
String The static IP for the instance or specify an ENI ID (e.g. eni-xxxxx) to associate a reserved Elastic Network Interface. |
||
edgeNode |
EdgeNode Cloud Edge node - Node A or Node B |
||
runMode |
RunMode RunMode - Normal, TestClone, or Offline |
||
storagePolicy (optional) |
StoragePolicy Storage policy - write back or write isolation |
||
targetStorageSpec (optional) |
TargetStorageSpec
AWSTargetStorageSpec storageType String AWS target storage isEbsEncryption (optional) Boolean Use EBS Encryption for native volumes. Only applicable to AWS. ebsEncryptionKeyAlias (optional) String Encryption key alias or ARN to be used for encryption. If isEbsEncryption is set to true and this isn't specified the default key will be used. |
||
_type |
String Move to AWS |
||
|
Enum: MoveToAwsRequest |
||
pricingModel (optional) |
PricingModel
|
MoveToAzureRequest
sourceVmId |
String VM ID |
||
instanceType |
String VM instance type |
||
subnetId (optional) |
String Subnet ID. If none is specified, the default edge node subnet is used. |
||
staticAddress (optional) |
String The static IP for the instance or specify an ENI ID (e.g. eni-xxxxx) to associate a reserved Elastic Network Interface. |
||
edgeNode |
EdgeNode Cloud Edge node - Node A or Node B |
||
runMode |
RunMode RunMode - Normal, TestClone, or Offline |
||
storagePolicy (optional) |
StoragePolicy Storage policy - write back or write isolation |
||
targetStorageSpec (optional) |
TargetStorageSpec
AzureTargetStorageSpec storageAccount String Azure storage account |
||
_type |
String Enum: MoveToAzureRequest |
||
securityGroupIds (optional) |
array[String] |
||
resourceGroupId (optional) |
String Resource group ID |
||
availabilitySetId (optional) |
String Availability set ID |
||
azureHubLicenseType (optional) |
String Azure Windows hub type configuration - client or server. A cloud-provided license is used if neither of these options is specified. |
MoveToGCPRequest
sourceVmId |
String VM ID |
||||
instanceType |
String VM instance type |
||||
subnetId (optional) |
String Subnet ID. If none is specified, the default edge node subnet is used. |
||||
staticAddress (optional) |
String The static IP for the instance or specify an ENI ID (e.g. eni-xxxxx) to associate a reserved Elastic Network Interface. |
||||
edgeNode |
EdgeNode Cloud Edge node - Node A or Node B |
||||
runMode |
RunMode RunMode - Normal, TestClone, or Offline |
||||
storagePolicy (optional) |
StoragePolicy Storage policy - write back or write isolation |
||||
targetStorageSpec (optional) |
TargetStorageSpec
|
||||
_type |
Array[String] Enum: MoveToGCPRequest |
||||
useEphemeralExternalIp |
Boolean Create an ephemeral external IP address. |
||||
networkTags (optional) |
Array[String] Network tags |
||||
publicIp (optional) |
String |
||||
osLicenseType |
String A link to a license for the OS example: "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2008-r2" |
Cloud-2-Cloud
sourceVmId |
String VM ID |
||
cloudDetailsName |
String VM instance typCloud details name. Should be used only when cloud-to-cloud use is intended. |
||
instanceType |
String VM instance type |
||
subnetId (optional) |
String Subnet ID. If none is specified, the default edge node subnet is used. |
||
staticAddress (optional) |
String The static IP for the instance or specify an ENI ID (e.g. eni-xxxxx) to associate a reserved Elastic Network Interface. |
||
edgeNode |
EdgeNode Cloud Edge node - Node A or Node B |
||
runMode |
RunMode RunMode - Normal, TestClone, or Offline |
||
storagePolicy (optional) |
StoragePolicy Storage policy - write back or write isolation |
||
targetStorageSpec (optional) |
TargetStorageSpec
AWSTargetStorageSpec storageType String AWS target storage isEbsEncryption (optional) Boolean Use EBS Encryption for native volumes. Only applicable to AWS. ebsEncryptionKeyAlias (optional) StringEncryption key alias or ARN to be used for encryption. If isEbsEncryption is set to true and this isn't specified the default key will be used. |
||
customTags (optional) |
Array Tags to place on instance |
||
targetInstanceName (optional) |
Strin Target instance name is used, unless empty, as the prefix of the instance name in the cloud. |
||
_type |
String The type of the request, which indicates the cloud provider for the target VM - AWS, Azure or GCP. |
||
|
Enum: MoveToAwsRequest MoveToAzureRequest MoveToGCPRequest |
||
pricingModel (optional) |
PricingModel
|
Return type
TaskId
value (optional) |
String Entity ID |
_type |
String Task ID Enum: TaskId |
AWS Example data
Content-Type: application/json
{
"sourceVmId": "vm-1",
"instanceType": "t2.medium",
"securityGroupIds": [
"sg-48539e2d"
],
"subnetId": "subnet-c1484887",
"edgeNode": "NodeA",
"runMode": "Normal",
"storagePolicy": "Writeback",
"targetStorageSpec": {
"_type": "AwsTargetStorageSpec",
"storageType": "standard",
"isEbsEncryption": false
},
"targetInstanceName": "customTargetName",
"pricingModel": {
"_type": "OnDemandPricingModel"
},
"_type": "MoveToAwsRequest"
}
Azure Example data
Content-Type: application/json
{
"sourceVmId": "vm-1",
"instanceType": "Standard_D1_v2",
"subnetId": "/subscriptions/a0123bc4-d567-89e1-0111-f21g31h4i151/resourceGroups/Company-NameTest/providers/Microsoft.Network/virtualNetworks/boiler-plate/subnets/SD-company",
"staticAddress": "10.10.20.20",
"edgeNode": "NodeA",
"runMode": "Normal",
"storagePolicy": "Writeback",
"targetStorageSpec": {
"_type": "AzureTargetStorageSpec",
"storageAccount": "/subscriptions/a0123bc4-d567-89e1-0111-f21g31h4i151/resourceGroups/rg1521223899-MBP/providers/Microsoft.Storage/storageAccounts/sa15212256343o8"
},
"securityGroupIds": [
"/subscriptions/a0123bc4-d567-89e1-0111-f21g31h4i151/resourceGroups/Velostrata-DevTest/providers/Microsoft.Network/networkSecurityGroups/AzureMain-NEurope-DevTest"
],
"resourceGroupId": "/subscriptions/a0123bc4-d567-89e1-0111-f21g31h4i151/resourceGroups/rg1521223899-MBP"
"_type": "MoveToAzureRequest"
}
GCP Example data
Content-Type: application/json
{
"sourceVmId": "vm-1",
"instanceType": "n1-standard-1",
"subnetId": "https://www.googleapis.com/compute/v1/projects/velosdev/regions/europe-west1/subnetworks/example",
"edgeNode": "NodeA",
"runMode": "Normal",
"storagePolicy": "Writeback",
"targetStorageSpec": {
"_type": "GcpTargetStorageSpec",
"diskType": "Standard"
},
"customTags": [],
"useEphemeralExternalIp": false,
"networkTags": ["velostrata"]
"_type": "MoveToGCPRequest"
}
AWS2GCP (Cloud to Cloud - AWS to GCP) Example data
Content-Type: application/json
{
"sourceVmId": "i-0691760636dfe8597",
"cloudDetailsName": "awsCloudDetails",
"instanceType": "n1-standard-1",
"securityGroupIds": [],
"subnetId": "https://www.googleapis.com/compute/v1/projects/velosdev/regions/europe-west1/subnetworks/example",
"edgeNode": "NodeA",
"runMode": "Normal",
"storagePolicy": "Writeisolation",
"originCloudCredentials": "datacenter-2_vpc-1410ff71_1520497528_DXw",
"originRegion": "eu-west-1",
"useEphemeralExternalIp": true,
"targetStorageSpec": {
"_type": "GcpTargetStorageSpec",
"diskType": "Standard"
},
"_type": "MoveToGCPRequest"
}
Produces
This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
- application/json
Responses
201
Created TaskId
Default
Error ErrorInfo
errorCode (optional) |
String |
url(optional) |
String |
message (optional) |
String |